package com.moliku.insurance.model.dto.huaan.insure;

import com.moliku.insurance.model.dto.InsuranceBaseParam;
import com.moliku.insurance.model.vo.huaan.HuaAnUnderwriteVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Map;

@Data
@ApiModel("华安核保")
public class HuaAnUnderwriteParam implements InsuranceBaseParam<HuaAnUnderwriteVo> {

    @Override
    public Class<HuaAnUnderwriteVo> responseType() {
        return HuaAnUnderwriteVo.class;
    }

    @Override
    public String url() {
        return "/fc/nsp-underwrite/simpleUnderwrite";
    }

    @Override
    public METHOD methodType() {
        return METHOD.POST;
    }

    @Override
    public FORMAT formatType() {
        return FORMAT.JSON;
    }

    /**
     *交易信息
     */
    @NotNull(message ="交易信息不能为空")
    private HuaAnTransParam trans;

    /**
     *渠道信息
     *
     */
    @ApiModelProperty("渠道信息")
    @NotNull(message ="渠道信息不能为空")
    private HuaAnSaleInfoParam saleInfo;

    /**
     *产品信息
     *
     */
    @ApiModelProperty("产品信息")
    @NotNull(message ="产品信息不能为空")
    private HuaAnProductParam product;


    /**
     *投保信息
     *
     */
    @ApiModelProperty("投保信息")
    @NotNull(message ="投保信息不能为空")
    private HuaAnPolicyParam policy;

    /**
     *投保人
     *
     */
    @ApiModelProperty("投保人")
    @NotNull(message ="投保人不能为空")
    private HuaAnHolderParam holder;

    /**
     *被保人
     *
     */
    @ApiModelProperty("被保人")
    @NotNull(message ="被保人不能为空")
    private List<HuaAnInsuredParam> insureds;

    /**
     *发票信息
     *此节点是否要传与具体对接人沟通
     */
    @ApiModelProperty("发票信息")
    private HuaAnInvoiceParam invoice;

    /**
     *标的信息
     *根据具体产品决定，由对接开发给出
     */
    @ApiModelProperty("标的信息")
    private Map<String,String> target;

    /**
     *标的信息
     *根据具体产品决定，由对接开发给出
     */
    @ApiModelProperty("标的信息列表")
    private List<Map<String,String>> targetList;

    /**
     *扩展信息
     *（目前银行使用传网点信息）
     */
    @ApiModelProperty("扩展信息")
    private HuaAnPolicyExtParam policyExt;

}
